<?php

class NoticiasController extends AppController {
	var $name = 'Noticias';
	var $components = array ('Pagination');
	var $helpers = array('Html','Form','Accessibility','Pagination');

	function index() {
		$title = 'Notícias';
		$this->set('title', $title);
		$this->set('pageTitle', $title);

		$conditions = array();

		// Recuperando ID do usuário logado
		$user = $this->othAuth->getData("user");
		$user_id = $user['id'];

		// Permissao: se pode visualizar todas as unidades
		$group = $this->othAuth->getData('group');
		$level =$group['level'];
		$unitUser = $this->othAuth->getData('unit');

		$conditions1 = array();
		if ($level >= 100) {  // not system admin
			$conditions1[] = array("organization_id"=>$unitUser['0']['Organization']['id'],"published"=>true);
		}
		// Recuperando notícias da Entidade
		$noticias_geral_geral      = $this->Noticia->find('all',array("conditions"=>$conditions1,'order'=>'Noticia.Publishedon DESC'));

		// Recuperando notícias publicadas pelo usuário
		$conditions2[] = array("user_id"=>$user_id,"published"=>true);
		$noticias_geral_publicadas = $this->Noticia->find('all',array("conditions"=>$conditions2,'order'=>'Noticia.Publishedon DESC'));

		// Recuperando Rascunhos do usuário
		$conditions3[] = array("user_id"=>$user_id,"published"=>0);
		$rascunhos			 = $this->Noticia->find('all',array("conditions"=>$conditions3,'order'=>'Noticia.Publishedon DESC'));


		// Passando variáveis para a UI
		$this->set('noticias_geral', $noticias_geral_geral);
		$this->set('noticias_publicadas', $noticias_geral_publicadas);
		$this->set('rascunhos', $rascunhos);


	}

	function view( $id=null ) {
		if (!$id) $this->redirect('/noticias');
		$this->set('pageTitle','Visualizar notícia');
		$this->Noticia->id = $id;
		$noticia = $this->Noticia->read();

		if($noticia["Noticia"]["published"] == '1')
		    $this->set('noticia', $noticia);
	}

	function add() {
		$this->set('pageTitle','Cadastrar notícia');
		if (!empty($this->data)) {

			// Recuperando unidade do usuário logado
			$unitUser = $this->othAuth->getData('unit');

			// Recuperando entidade do usuário logado
			$org_id = $unitUser['0']['Organization']['id'];

			// Recuperando ID do usuário logado
			$user = $this->othAuth->getData("user");
			$user_id = $user['id'];

			// Indicando autor do fórum
			$this->data["Noticia"]['user_id'] = $user_id;
			$this->data["Noticia"]['organization_id'] = $org_id;

			if($this->data["Noticia"]['published'] == true)
			{
				$mysqldate = date('Y-m-d H:i:s',time());
				$this->data["Noticia"]['publishedon'] = $mysqldate;
			}


			// Validando as informacoes do fórum

			if($this->data["Noticia"]["title"]  == null) {
				$_SESSION['mensagem']['error'][] = 'O campo Título é obrigatório.';
			}
			if($this->data["Noticia"]["text"]  == null) {
				$_SESSION['mensagem']['error'][] = 'O campo Conteúdo é obrigatório.';
			}

			if (isset($_SESSION['mensagem']['error'])) {
				return;
			}

			if ($this->Noticia->save($this->data)) {
				if($this->data["Noticia"]['published'] == true)
				{
					$_SESSION['mensagem']['success'][] = 'Noticia publicada com sucesso!';
				}
				else
				{
					$_SESSION['mensagem']['success'][] = 'Noticia cadastrada com sucesso!';
				}
			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar cadastrar a noticia.';
			}

			$this->redirect('/noticias');
		}
	}

	function edit( $id=null) {
		if (!$id) $this->redirect('/noticias');
		$this->set('pageTitle','Editar notícia');

		$this->Noticia->id = $id;
		if (empty($this->data)) {
			$this->data = $this->Noticia->read();
		} else {
			if($this->data["Noticia"]["title"]  == null) {
				$_SESSION['mensagem']['error'][] = 'O campo Título é obrigatório.';
			}
			if($this->data["Noticia"]["text"]  == null) {
				$_SESSION['mensagem']['error'][] = 'O campo Conteúdo é obrigatório.';
			}

			if (isset($_SESSION['mensagem']['error'])) {
				return;
			}

			if ($this->Noticia->save($this->data['Noticia'])) {
				$_SESSION['mensagem']['success'][] = 'Noticia alterada com sucesso!';
			} else {
				$_SESSION['mensagem']['error'][] = 'Erro ao tentar alterar a noticia.';
			}
			$this->redirect('/noticias');
		}
		$noticia = $this->Noticia->find(array('`Noticia`.id' => $id));
		$this->set('noticia', $noticia);
	}

	function delete($id) {
		if (!$id) $this->redirect('/noticias');
		if ($this->Noticia->del($id)) {
			$_SESSION['mensagem']['success'][] = 'Noticia excluida com sucesso!';
		} else {
			$_SESSION['mensagem']['error'][] = 'Erro ao tentar excluir a noticia.';
		}
		$this->redirect('/noticias');
	}
}
?>